// Template Source: BaseEntity.java.tt
// ------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All Rights Reserved.  Licensed under the MIT License.  See License in the project root for license information.
// ------------------------------------------------------------------------------

package com.microsoft.graph.models;
import com.microsoft.graph.serializer.ISerializer;
import com.microsoft.graph.serializer.IJsonBackedObject;
import com.microsoft.graph.serializer.AdditionalDataManager;
import java.util.EnumSet;


import com.google.gson.JsonObject;
import com.google.gson.annotations.SerializedName;
import com.google.gson.annotations.Expose;
import javax.annotation.Nullable;
import javax.annotation.Nonnull;

// **NOTE** This file was generated by a tool and any changes will be overwritten.

/**
 * The class for the On Premises Extension Attributes.
 */
public class OnPremisesExtensionAttributes implements IJsonBackedObject {

    /** the OData type of the object as returned by the service */
    @SerializedName("@odata.type")
    @Expose
    @Nullable
    public String oDataType;

    private transient AdditionalDataManager additionalDataManager = new AdditionalDataManager(this);

    @Override
    @Nonnull
    public final AdditionalDataManager additionalDataManager() {
        return additionalDataManager;
    }

    /**
     * The Extension Attribute1.
     * First customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute1", alternate = {"ExtensionAttribute1"})
    @Expose
	@Nullable
    public String extensionAttribute1;

    /**
     * The Extension Attribute10.
     * Tenth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute10", alternate = {"ExtensionAttribute10"})
    @Expose
	@Nullable
    public String extensionAttribute10;

    /**
     * The Extension Attribute11.
     * Eleventh customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute11", alternate = {"ExtensionAttribute11"})
    @Expose
	@Nullable
    public String extensionAttribute11;

    /**
     * The Extension Attribute12.
     * Twelfth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute12", alternate = {"ExtensionAttribute12"})
    @Expose
	@Nullable
    public String extensionAttribute12;

    /**
     * The Extension Attribute13.
     * Thirteenth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute13", alternate = {"ExtensionAttribute13"})
    @Expose
	@Nullable
    public String extensionAttribute13;

    /**
     * The Extension Attribute14.
     * Fourteenth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute14", alternate = {"ExtensionAttribute14"})
    @Expose
	@Nullable
    public String extensionAttribute14;

    /**
     * The Extension Attribute15.
     * Fifteenth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute15", alternate = {"ExtensionAttribute15"})
    @Expose
	@Nullable
    public String extensionAttribute15;

    /**
     * The Extension Attribute2.
     * Second customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute2", alternate = {"ExtensionAttribute2"})
    @Expose
	@Nullable
    public String extensionAttribute2;

    /**
     * The Extension Attribute3.
     * Third customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute3", alternate = {"ExtensionAttribute3"})
    @Expose
	@Nullable
    public String extensionAttribute3;

    /**
     * The Extension Attribute4.
     * Fourth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute4", alternate = {"ExtensionAttribute4"})
    @Expose
	@Nullable
    public String extensionAttribute4;

    /**
     * The Extension Attribute5.
     * Fifth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute5", alternate = {"ExtensionAttribute5"})
    @Expose
	@Nullable
    public String extensionAttribute5;

    /**
     * The Extension Attribute6.
     * Sixth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute6", alternate = {"ExtensionAttribute6"})
    @Expose
	@Nullable
    public String extensionAttribute6;

    /**
     * The Extension Attribute7.
     * Seventh customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute7", alternate = {"ExtensionAttribute7"})
    @Expose
	@Nullable
    public String extensionAttribute7;

    /**
     * The Extension Attribute8.
     * Eighth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute8", alternate = {"ExtensionAttribute8"})
    @Expose
	@Nullable
    public String extensionAttribute8;

    /**
     * The Extension Attribute9.
     * Ninth customizable extension attribute.
     */
    @SerializedName(value = "extensionAttribute9", alternate = {"ExtensionAttribute9"})
    @Expose
	@Nullable
    public String extensionAttribute9;


    /**
     * Sets the raw JSON object
     *
     * @param serializer the serializer
     * @param json the JSON object to set this object to
     */
    public void setRawObject(@Nonnull final ISerializer serializer, @Nonnull final JsonObject json) {

    }
}
